#pragma once
#include "WareTypes.h"
#include "ISceneEntity.h"
#include "CVector3.h"
#include "WareEngineNameSpace.h"

BEGIN_WARE

class ISceneNodeCamera : public ISceneEntity
{
public:
	virtual ~ISceneNodeCamera() {}

	virtual void	GetPos( CVector3& vPos ) = 0;
	virtual void	GetTarget( CVector3& vTarget ) = 0;
	virtual void	GetUp( CVector3& vUp ) = 0;
	virtual void	GetDir( CVector3& vDir ) = 0;
	virtual float32	GetAspc() = 0;
	virtual float32	GetFovy() = 0;
	virtual float32 GetNear() = 0;
	virtual float32 GetFar() = 0;

	virtual	void	Orthogonal2D( CVector3& vPos, CVector3& vTarget, CVector3& vUp, float32 fNear, float32 fFar ) = 0;
	virtual void	Projection3D( CVector3& vPos, CVector3& vTarget, CVector3& vUp, float32 fAspc, float32 fFovy, float32 fNear, float32 fFar ) = 0;
};

END_WARE